% Licensed under the Apache License, Version 2.0 (the "License"); you may not
% use this file except in compliance with the License. You may obtain a copy of
% the License at
%
%   http://www.apache.org/licenses/LICENSE-2.0
%
% Unless required by applicable law or agreed to in writing, software
% distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
% WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
% License for the specific language governing permissions and limitations under
% the License.

%%% @author CA Meijer
%%% @copyright 2012 CA Meijer
%%% @doc This module provides functions for managing customers.
%%% @end

-module(nimbula_customer).

%% Include files
-include("nimbula_records.hrl").

%% Exported Functions
-export([add/2,
		 get/2,
		 list/1,
		 list/2,
		 update/2]).

%% API Functions
add(Pid, Customer) when is_record(Customer, customer) ->
	nimbula_objects:add(Pid, ?record_fields(customer), 
						"signup", Customer).

get(Pid, Customer) ->
	nimbula_objects:get(Pid, ?record_fields(customer), Customer).
	
list(Pid) ->
	nimbula_objects:list(Pid, ?record_fields(customer)).

list(Pid, Container) ->
	nimbula_objects:list(Pid, ?record_fields(customer), Container).

update(Pid, Customer) when is_record(Customer, customer) ->
	nimbula_objects:update(Pid, ?record_fields(customer), 
						   Customer#customer.name, Customer).
